package com.cskaoyan.javase.oop.import11.onepackage;


//import com.cskaoyan.javase.oop.import11.anotherpackage.Teacher;
//idea的自动导包功能
//import com.cskaoyan.javase.oop.import11.anotherpackage.Student;
//import com.cskaoyan.javase.oop.import11.anotherpackage.Teacher;
import com.cskaoyan.javase.oop.import11.anotherpackage.Student;
import com.cskaoyan.javase.oop.import11.anotherpackage.Teacher;

/**
 * import关键字使用细节：import关键字应该放在package声明之后，正式的代码之前
 * import声明提供了一种包的智能导入方式，语法为
 *   import <包名>.*;
 * - 包中的类将根据需要导入，避免使用多条import声明
 * 它会自动判断你是否需要导包---》判断的依据是 如果不导包就报错，这个时候就给你导包
 */

/**
 * @description: 测试类
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

public class Test {
    public static void main(String[] args) {
        //这里的student是哪里的？
        //注意默认情况下，Java编译器会去从当前包下找这个类，如果没找到直接报错
        //如果显式的告诉编译器使用哪个类，它就会找到这个类，并且使用它
        Student s = new Student(); //这个类同包下有一个 如果不导包不会报错，所以它智能的就不给你导包
        s.test();
        new Teacher(); //这个时候叫不导包就报错
        //有个问题，我想使用anotherpackage下的student

        //不同包下的同类名我都想使用，咋办？ 可以其中一个使用全限定类名创建对象
        //这种形式了解即可，不到万不得已不要用，应该改名字 实现需求是第一位的
        //可以用全限定类名来创建对象 com.cskaoyan.javase.oop.import11.Student
        com.cskaoyan.javase.oop.import11.onepackage.Student s1 = new com.cskaoyan.javase.oop.import11.onepackage.Student();
        s1.test();
    }
}
